Added test
authorJeroen van der Heijden <jeroen@transceptor.technology>
Fri, 5 Oct 2018 10:48:45 +0000 (12:48 +0200)
committerJeroen van der Heijden <jeroen@transceptor.technology>
Fri, 5 Oct 2018 10:48:45 +0000 (12:48 +0200)
Debug/src/siri/db/subdir.mk
Release/src/siri/db/subdir.mk
src/siri/db/series.c
test/test.sh
test/test_siridb/sources [new file with mode: 0644]
test/test_siridb/test_siridb.c [new file with mode: 0644]

index 44fba5aa373fcc8773d61ea8213944746c333f98..bcd9e1adba2a9eb8ee0d6351b64dcc4b2f3bf0e8 100644 (file)
@@ -8,7 +8,6 @@ C_SRCS += \
 ../src/siri/db/aggregate.c \
 ../src/siri/db/auth.c \
 ../src/siri/db/buffer.c \
-../src/siri/db/chunk.c \
 ../src/siri/db/db.c \
 ../src/siri/db/ffile.c \
 ../src/siri/db/fifo.c \
index bed7d326ec763051673bd8f1d48842de56b49b8f..0e94585e3dd37fd7aad5b5382a58a5ed8ba3a12f 100644 (file)
@@ -8,7 +8,6 @@ C_SRCS += \
 ../src/siri/db/aggregate.c \
 ../src/siri/db/auth.c \
 ../src/siri/db/buffer.c \
-../src/siri/db/chunk.c \
 ../src/siri/db/db.c \
 ../src/siri/db/ffile.c \
 ../src/siri/db/fifo.c \
index 3989581d8c10ed10e23950e73df9252ff31e4d75..232a3496154fa4bf8cfbfedabb5bb2fa899e0ae7 100644 (file)
@@ -987,7 +987,7 @@ void siridb_series_ensure_type(siridb_series_t * series, qp_obj_t * qp_obj)
             {
                 assert(0);
             }
-            qp_obj->tp = TP_DOUBLE;
+            qp_obj->tp = QP_DOUBLE;
         }
         return;
     case TP_STRING:
@@ -995,7 +995,7 @@ void siridb_series_ensure_type(siridb_series_t * series, qp_obj_t * qp_obj)
         {
             if (qp_obj->tp == QP_INT64)
             {
-                snprintf(
+                qp_obj->len = snprintf(
                         str_type_buf,
                         STR_TYPE_BUF_SZ,
                         "%" PRId64,
@@ -1004,7 +1004,7 @@ void siridb_series_ensure_type(siridb_series_t * series, qp_obj_t * qp_obj)
             }
             else if (qp_obj->tp == QP_DOUBLE)
             {
-                snprintf(
+                qp_obj->len = snprintf(
                         str_type_buf,
                         STR_TYPE_BUF_SZ,
                         "%f",
index 159ebc1c3427f75982b620c0ad7e95f74ba98906..06ead634ac41fde3c482505cca55ec1ab78a663d 100755 (executable)
@@ -9,6 +9,12 @@ else
     echo -e "\x1B[33mdisabled\x1B[0m";
 fi
 
+if [[ "$OSTYPE" == "darwin" ]]; then
+    LCRYPT=
+else
+    LCRYPT=-lcrypt
+fi
+
 run () {
     if [ ! -f $1/sources ]; then
        return;
@@ -19,7 +25,7 @@ run () {
     OUT=$1.out
     rm "$OUT" 2> /dev/null
 
-    gcc -I"../include" -O0 -g3 -Wall -Wextra -Winline -std=gnu99 $SOURCE $C_SRC -lm -lpcre2-8 -lcleri -o "$OUT"
+    gcc -I"../include" -O0 -g3 -Wall -Wextra -Winline -std=gnu99 $SOURCE $C_SRC -lm -lpcre2-8 -lcleri -luuid -luv $LCRYPT -o "$OUT"
     if [[ "$NOMEMTEST" -ne "1" ]]; then
         valgrind --tool=memcheck --error-exitcode=1 --leak-check=full -q ./$OUT
     else
diff --git a/test/test_siridb/sources b/test/test_siridb/sources
new file mode 100644 (file)
index 0000000..6a97c9b
--- /dev/null
@@ -0,0 +1,81 @@
+../src/slist/slist.c
+../src/ctree/ctree.c
+../src/xpath/xpath.c
+../src/xmath/xmath.c
+../src/qpack/qpack.c
+../src/imap/imap.c
+../src/llist/llist.c
+../src/logger/logger.c
+../src/strextra/strextra.c
+../src/cfgparser/cfgparser.c
+../src/owcrypt/owcrypt.c
+../src/cexpr/cexpr.c
+../src/expr/expr.c
+../src/timeit/timeit.c
+../src/iso8601/iso8601.c
+../src/lock/lock.c
+../src/procinfo/procinfo.c
+../src/siri/async.c
+../src/siri/backup.c
+../src/siri/buffersync.c
+../src/siri/err.c
+../src/siri/heartbeat.c
+../src/siri/optimize.c
+../src/siri/siri.c
+../src/siri/version.c
+../src/siri/net/bserver.c
+../src/siri/net/clserver.c
+../src/siri/net/pkg.c
+../src/siri/net/promise.c
+../src/siri/net/promises.c
+../src/siri/net/protocol.c
+../src/siri/net/stream.c
+../src/siri/net/tcp.c
+../src/siri/net/pipe.c
+../src/siri/db/access.c
+../src/siri/db/aggregate.c
+../src/siri/db/auth.c
+../src/siri/db/buffer.c
+../src/siri/db/db.c
+../src/siri/db/ffile.c
+../src/siri/db/fifo.c
+../src/siri/db/forward.c
+../src/siri/db/group.c
+../src/siri/db/groups.c
+../src/siri/db/initsync.c
+../src/siri/db/insert.c
+../src/siri/db/listener.c
+../src/siri/db/lookup.c
+../src/siri/db/median.c
+../src/siri/db/misc.c
+../src/siri/db/nodes.c
+../src/siri/db/pcache.c
+../src/siri/db/points.c
+../src/siri/db/pool.c
+../src/siri/db/pools.c
+../src/siri/db/presuf.c
+../src/siri/db/props.c
+../src/siri/db/queries.c
+../src/siri/db/query.c
+../src/siri/db/re.c
+../src/siri/db/reindex.c
+../src/siri/db/replicate.c
+../src/siri/db/series.c
+../src/siri/db/server.c
+../src/siri/db/servers.c
+../src/siri/db/shard.c
+../src/siri/db/shards.c
+../src/siri/db/tasks.c
+../src/siri/db/time.c
+../src/siri/db/user.c
+../src/siri/db/users.c
+../src/siri/db/variance.c
+../src/siri/db/walker.c
+../src/siri/file/handler.c
+../src/siri/file/pointer.c
+../src/siri/admin/account.c
+../src/siri/admin/client.c
+../src/siri/admin/request.c
+../src/siri/help/help.c
+../src/siri/cfg/cfg.c
+../src/siri/grammar/grammar.c
\ No newline at end of file
diff --git a/test/test_siridb/test_siridb.c b/test/test_siridb/test_siridb.c
new file mode 100644 (file)
index 0000000..a0d1e51
--- /dev/null
@@ -0,0 +1,117 @@
+#include "../test.h"
+#include <locale.h>
+#include <siri/db/series.h>
+
+
+static int test_series_ensure_type(void)
+{
+    test_start("siridb (series_ensure_type)");
+
+    siridb_series_t series;
+    qp_obj_t qp_obj;
+
+    /* test with integer series  */
+    {
+        series.tp = TP_INT;
+
+        qp_obj.tp = QP_INT64;
+        qp_obj.via.int64 = -1;
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_INT64);
+        _assert (qp_obj.via.int64 == -1);
+
+        qp_obj.tp = QP_DOUBLE;
+        qp_obj.via.real = -1.0;
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_INT64);
+        _assert (qp_obj.via.int64 == -1);
+
+        qp_obj.tp = QP_RAW;
+        qp_obj.via.str = "55 percent";
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_INT64);
+        _assert (qp_obj.via.int64 == 55);
+
+        qp_obj.tp = QP_RAW;
+        qp_obj.via.str = "garbage";
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_INT64);
+        _assert (qp_obj.via.int64 == 0);
+    }
+
+    /* test with double series */
+    {
+        series.tp = TP_DOUBLE;
+
+        qp_obj.tp = QP_DOUBLE;
+        qp_obj.via.real = -1.1;
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_DOUBLE);
+        _assert (qp_obj.via.real == -1.1);
+
+        qp_obj.tp = QP_INT64;
+        qp_obj.via.int64 = -1;
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_DOUBLE);
+        _assert (qp_obj.via.real == -1.0);
+
+        qp_obj.tp = QP_RAW;
+        qp_obj.via.str = "0,5 percent";
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_DOUBLE);
+        _assert (qp_obj.via.real == 0.5);
+
+        qp_obj.tp = QP_RAW;
+        qp_obj.via.str = "garbage";
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_DOUBLE);
+        _assert (qp_obj.via.real == 0.0);
+    }
+
+    /* test with string series */
+    {
+        series.tp = TP_STRING;
+
+        qp_obj.tp = QP_RAW;
+        qp_obj.via.str = "55.3 percent";
+        qp_obj.len = strlen(qp_obj.via.str);
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_RAW);
+        _assert (strlen("55.3 percent") == qp_obj.len);
+        _assert (strncmp("55.3 percent", qp_obj.via.str, qp_obj.len) == 0);
+
+        qp_obj.tp = QP_RAW;
+        qp_obj.via.str = "";
+        qp_obj.len = strlen(qp_obj.via.str);
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_RAW);
+        _assert (strlen("") == qp_obj.len);
+        _assert (strncmp("", qp_obj.via.str, qp_obj.len) == 0);
+
+        qp_obj.tp = QP_DOUBLE;
+        qp_obj.via.real = -1.1;
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_RAW);
+        _assert (strlen("-1,100000") == qp_obj.len);
+        _assert (strncmp("-1,100000", qp_obj.via.str, qp_obj.len) == 0);
+
+        qp_obj.tp = QP_INT64;
+        qp_obj.via.int64 = -1;
+        siridb_series_ensure_type(&series, &qp_obj);
+        _assert (qp_obj.tp == QP_RAW);
+        _assert (strlen("-1") == qp_obj.len);
+        _assert (strncmp("-1", qp_obj.via.str, qp_obj.len) == 0);
+    }
+
+    return test_end();
+};
+
+int main()
+{
+    (void) setlocale(LC_ALL, "");
+
+    return (
+        test_series_ensure_type() ||
+        0
+    );
+};
\ No newline at end of file